package com.hhdys.servlet;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import com.hhdys.model.WebSet;
import com.hhdys.service.WebSetService;
import com.hhdys.util.Constant;

/**
 * Servlet implementation class InitServlet
 */
@WebServlet(value="/InitServlet",loadOnStartup=2)
public class InitServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	@Autowired
	private WebSetService service;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public InitServlet() {
        super();
        SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
		initConfig();//初始化配置文件
		initWebSet();//初始化数据字典

    }

	/**
	 * 初始化数据字典
	 */
	private void initWebSet(){
		List<WebSet> list=service.selectWebSets();
		if(Constant.WEBSET==null){
			Constant.WEBSET=new HashMap<String,Map<String, WebSet>>();
		}
		Constant.WEBSET.clear();//清除所有设置
		service.initWebSet(list);

		//如果设置表有全局验证码设置  则初始化
		Map<String, WebSet> kaptchaSet=Constant.WEBSET.get(Constant.KAPTCHA_SESSION_KEY);
		if(kaptchaSet!=null&&kaptchaSet.get(Constant.KAPTCHA_SESSION_KEY)!=null){
			Constant.KAPTCHASWITCH=kaptchaSet.get(Constant.KAPTCHA_SESSION_KEY).getValue().equals("true")?true:false;
		}
	}

	@Override
	public void destroy() {
		super.destroy();
		System.out.println("close web=====");
	}

	/**
	 * 初始化配置文件
	 */
	private void initConfig(){
		Properties properties=new Properties();
		try {
			properties.load(this.getClass().getResourceAsStream("../../../config.properties"));
			Constant.setProperties(properties);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
